package com.example.a_java.model.dto.report;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 逾期统计数据DTO
 */
@Data
@Schema(description = "逾期统计数据DTO")
public class OverdueStatsDTO {

    @Schema(description = "逾期总笔数")
    private Integer overdueCount;
    
    @Schema(description = "逾期总金额")
    private BigDecimal overdueAmount;
    
    @Schema(description = "逾期率(%)")
    private BigDecimal overdueRate;
    
    @Schema(description = "逾期率环比变化")
    private BigDecimal overdueRateChange;
    
    @Schema(description = "平均逾期天数")
    private BigDecimal avgOverdueDays;
    
    @Schema(description = "逾期天数分布")
    private Map<String, Integer> daysDistribution;
    
    @Schema(description = "月度趋势")
    private List<MonthlyTrend> monthlyTrend;
    
    /**
     * 月度趋势数据
     */
    @Data
    @Schema(description = "月度趋势数据")
    public static class MonthlyTrend {
        @Schema(description = "月份")
        private String month;
        
        @Schema(description = "笔数")
        private Integer count;
        
        @Schema(description = "金额")
        private BigDecimal amount;
        
        @Schema(description = "逾期率(%)")
        private BigDecimal rate;
    }
} 
